#ifndef EMOTION_TROLLANIMATIONEMOTIONMANAGER_H
#define EMOTION_TROLLANIMATIONEMOTIONMANAGER_H

#include "emotionmanager.h"
#include "abstractemotionmanager.h"

#include <QObject>
#include <QList>
#include <QMap>


namespace Emotion {

class AbstractEmotion;
class TrollAnimationEmotion;

class TrollAnimationEmotionManager : public AbstractEmotionManager
{
    Q_OBJECT
public:
    explicit TrollAnimationEmotionManager(QObject *parent = 0);
    ~TrollAnimationEmotionManager();

private:
    static TrollAnimationEmotionManager *m_instance;

private:
    void init();
    virtual AbstractEmotion *createEmotion(int index) const;

    QString genName(int index) const;
    QString getCode(int index) const;
    QString getMeaning(int index) const;

public:
    static TrollAnimationEmotionManager *instance(QObject *parent = 0);

public:
    virtual EmotionManagerType type() const;

public:
    virtual int count() const;
};

} // namespace Emotion

#endif // EMOTION_TROLLANIMATIONEMOTIONMANAGER_H
